package com.ybkj.o2o.mc.service;


import com.ybkj.o2o.mc.entity.PassengerConcats;

import java.util.List;


/**
 * Created by shine on 15/8/19.
 */
public interface PassengerConcatsService {

  /**
   * 根据用户主键与电话号码查询常用联系人是否已经存在.
   *
   * @param phone       电话号码
   * @param passengerId 乘客主键
   * @return true存在, false不存在
   */
  boolean exists(String phone, Long passengerId);

  /**
   * 保存常用联系人信息.
   *
   * @param concats 联系人信息
   * @return 受影响行数
   */
  int insert(PassengerConcats concats);

  /**
   * 根据联系人主键与乘客主键查询联系人信息.
   *
   * @param concatsId   联系人主键
   * @param passengerId 乘客主键
   * @return 联系人信息
   */
  PassengerConcats findByConcatsAndPassenger(Long concatsId, Long passengerId);

  /**
   * 根据联系人主键与乘客主键删除紧急联系人.
   *
   * @param concatsId   联系人主键
   * @param passengerId 乘客主键
   * @return 受影响行数
   */
  int deleteByIdAndPassengerId(Long concatsId, Long passengerId);

  /**
   * 修改紧急联系人信息.
   *
   * @param concats 联系人信息
   * @return 受影响函数
   */
  int update(PassengerConcats concats);

  /**
   * 根据乘客查询所有的紧急联系人信息.
   *
   * @param passengerId 乘客主键
   * @return 联系人列表
   */
  List<PassengerConcats> findByPassengerId(Long passengerId);

  /**
   * 根据乘客主键分页查询联系人信息.
   *
   * @param passengerId 乘客主键，为null则查询所有
   * @param offset      偏移量
   * @param rows        每页显示数据
   * @return 联系人列表
   */
  List<PassengerConcats> findAll(Long passengerId, int offset, int rows);

  /**
   * 根据乘客主键查询联系人数量.
   *
   * @param passengerId 乘客主键，为null则查询所有
   * @return 联系人数量
   */
  long count(Long passengerId);

  /**
   * 根据乘客主键删除联系人信息.
   *
   * @param passengerId 乘客主键
   * @return 删除的数量
   */
  int deleteByPassenger(Long passengerId);

  /**
   * 根据乘客主键删除联系人信息.
   *
   * @param passengers 乘客主键列表
   * @return 删除的数量
   */
  int deleteByPassengers(List<Long> passengers);
}
